package com.jihui.jihuipicturebackend.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jihui.jihuipicturebackend.model.dto.spaceuser.SpaceUserAddRequest;
import com.jihui.jihuipicturebackend.model.dto.spaceuser.SpaceUserEditRequest;
import com.jihui.jihuipicturebackend.model.dto.spaceuser.SpaceUserQueryRequest;
import com.jihui.jihuipicturebackend.model.entity.SpaceUser;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jihui.jihuipicturebackend.model.vo.SpaceUserVO;
import com.jihui.jihuipicturebackend.model.vo.SpaceVO;

import java.util.List;

/**
* @author wu'ji'hui
* @description 针对表【space_user(空间用户关联)】的数据库操作Service
* @createDate 2025-02-26 16:55:46
*/
public interface SpaceUserService extends IService<SpaceUser> {

    /**
     * 添加团队空间用户
     *
     * @param spaceAddRequest
     * @return
     */
    long addSpaceUser(SpaceUserAddRequest spaceAddRequest);


    /**
     * 更新团队空间信息
     *
     * @param spaceUserEditRequest
     * @return
     */
    SpaceUserVO updateSpaceUser(SpaceUserEditRequest spaceUserEditRequest);

    /**
     * 构造查询条件
     *
     * @param spaceUserQueryRequest
     * @return
     */
    QueryWrapper<SpaceUser> getSpaceUserQueryWrapper(SpaceUserQueryRequest spaceUserQueryRequest);

    /**
     * 获取单个团队空间的VO
     *
     * @param spaceUser
     * @return
     */
    SpaceUserVO getSpaceUserVO(SpaceUser spaceUser);

    /**
     * 获取单个空间的VO
     *
     * @param spaceUserList
     * @return
     */
    List<SpaceUserVO> getSpaceUserListVO(List<SpaceUser> spaceUserList);


    /**
     * 校验团队空间信息
     *
     * @param spaceUser
     * @param add 是否是新增
     */
    void validSpaceUser(SpaceUser spaceUser, boolean add);

}
